Math Academy 的 Eurisko 项目的故事:美国最先进的高中数学与计算机科学课程系列
由 Justin Skycak (@justinskycak) 发表于 2023 年 5 月 1 日
在其 2020 年至 2023 年的运作期间,Eurisko 项目堪称美国最先进的高中数学与计算机科学课程系列。该项目的高潮是高中生们完成了硕士乃至博士级别的课程作业(例如,在人工智能领域复现学术研究论文,并用 Python 从零开始构建所有内容)。
这本书是为了支持 Eurisko 项目而编写的。Eurisko 是帕萨迪纳高中 Math Academy 项目中的一个高阶数学与计算机科学选修课程系列。在其 2020 年至 2023 年的运作期间,Eurisko 项目是美国最先进的高中数学与计算机科学课程系列。(「Eurisko」源于希腊语,意为「我发现」,它也是一个 20 世纪 80 年代的人工智能系统的名称,该系统曾连续两次赢得一项特定的游戏竞赛——即便在规则被修改以试图对其加以限制的情况下也未能阻止其获胜。)
Eurisko 课程的教学强度堪比顶尖理工科大学,并且学生们在获准使用外部程序库之前,所有代码都必须从零开始独立编写。这之所以成为可能,是因为学生们已经通过 Math Academy 打下了坚实的大学数学基础,在 10 年级结束时便已掌握了多变量微积分、线性代数和微分方程等知识。
Eurisko 的第一门课程受到了麻省理工学院「计算机科学导论」的启发,但在深度和广度上都远超前者。除了实现经典的数据结构和算法(如排序、搜索、图遍历算法),学生们还从零开始编写了自己的机器学习算法(包括多项式回归、逻辑回归、k-近邻算法、k-均值聚类算法,以及通过梯度下降进行参数拟合的方法)。
在后续的课程中,学生们实现了更为高级的机器学习算法,例如决策树和神经网络。他们还着手复现了人工智能领域的学术研究论文,一直到成功复现了 Blondie24——一个能够自我学习下棋的人工智能计算机程序。与此同时,他们还合作开发了 Space Empires ,这是一款极其复杂的桌面棋盘游戏,将他们在大规模项目开发方面的技能(如面向对象设计、版本控制等)推向了极限。项目的最终目标是从 Blondie24 所使用的技术中汲取灵感,创造出具备人工智能的 Space Empires 游戏玩家。
若没有 Eurisko 项目,这本教材便无从谈起;而若没有 Math Academy 创始人 Jason Roberts 和 Sandy Roberts 夫妇的鼎力合作,Eurisko 项目也断不可能实现。Eurisko 项目始于 2020 年 6 月,当时 Jason 请我在暑假期间为他 15 岁的儿子 Colby 教授一些高阶的计算机科学知识。他随即召集了 Colby 的一些在数学方面基础扎实的同学,我们由此组建了一个夏季计算机科学学习小组,每周上课三次,每周的习题量大约需要 10 个小时来完成。
所有的习题都要求学生独立使用 Python 语言,从零开始编写代码。他们不允许使用外部程序库,而是必须亲手构建所有功能。学生们可以在宏观层面进行协作,讨论解决问题的不同方案,但每一份习题都必须由每位学生独立完成并提交。
令我们惊喜的是,学生们的进步速度甚至远超我们最乐观的预期:
-
六月初时,他们尚不知如何编写辅助函数,就连判断一个字符串是否为回文这样简单的问题,对他们而言也并非易事。
-
到了七月初,他们已经从零开始构建了一个矩阵类和一个梯度下降优化器。这个矩阵类不仅包含了矩阵运算的方法,还实现了行化简、行列式计算和逆矩阵求解等标准线性代数运算。
-
而到八月初,他们更进一步,在自己构建的矩阵类和梯度下降优化器的基础上,搭建起一个回归分析库。该库支持多项式回归、逻辑回归以及包含交互项的多元线性回归。
-
除此之外,他们还实现了数组排序和图遍历的标准算法。并且,根据 Jason 的建议,为了积累一些系统编程的经验,他们还创建了一个简化版的 Space Empires 桌面棋盘游戏,并通过编写和提交自动化策略程序来进行对战。
那个夏天结束时,通过与 App Academy 的合作,Eurisko 项目有幸获得了资助,得以成为一门正式的高中课程。Jason 招募了第二批即将升入 10 年级的学生。而我则凭借着一项堪称极致的课堂管理技巧,在同一上课时段内,既要继续辅导第一批学生,又要同时启动第二批学生的教学。
在 2020 至 2021 学年,课程的组织安排极具挑战性。由于新冠疫情,学校完全采用远程教学模式,每一批学生每周通过集体视频通话上课的时间仅有两小时。如果学生遇到难题,他们必须在 Slack 上发帖求助,而且帖子内容必须足够清晰详尽,以便我或其他同学能够迅速理解问题并简要作答,避免耗费过多时间。这种学习模式对于任何初级开发人员而言都将是一个陡峭的学习曲线,更不用说那些几乎没有或完全没有编程经验的高中低年级学生了。但我们坚持了下来,那些努力克服困难的学生最终培养出了令人惊叹的独立学习能力和调试排错能力。(更值得一提的是,我们所有的学习活动都是在学校配发的 Chromebooks 上,利用 Replit 和 Gitpod 等免费的在线开发环境完成的。)
随着我对课程内容的不断完善以及学校恢复线下教学,后续几年的教学工作变得顺畅许多。在 2021 至 2022 学年,大部分习题都配备了足够详尽的书面辅导材料,以至于我每周只需进行一次传统的课堂讲授。2022 年夏天,我进一步优化和整理了这些辅导材料,将其编撰成书的各个章节。因此,在 2022 至 2023 学年,Eurisko 课程几乎完全实现了自主学习。学生们自行阅读指定的章节并完成练习题。在课堂上,我不再进行传统的讲授,而是专注于解答疑问并协助学生调试代码。
2021 年,Jason 分享了一个大胆的想法:让 Eurisko 的学生复现 Blondie24 项目的系列研究论文,并以此为灵感,创造出能够进行人工智能对战的 Space Empires 玩家。这成为了我们对该项目最终顶点设计所擘画的蓝图。Eurisko 的第一批学生一度非常接近这个目标,但由于他们只有两年完整的 Eurisko 课程学习时间,而非三年,最终因时间不足而未能完全实现。然而,第二批学生成功地复现了 Blondie24 研究计划中三篇论文里的一到两篇,并以此为启发,在 Space Empires 游戏中成功演化出了战斗策略。
第二批学生的最后一年(2022 至 2023 学年),也因我工作地点的变动而成为了 Eurisko 项目的最后一年。总计有 16 名学生坚持完成了整个项目的学习。
-
第一批(2020 年夏季 - 2022 年春季): David Gieselman, George Meza, Riley Paddock, Colby Roberts, Elijah Tarr
-
第二批(2020 年秋季 - 2023 年春季): Maia Dimas, Justin Hong, Cayden Lau, Anton Perez, William Wallius, Charlie Weinberger
-
第三批(2021 年秋季 - 2023 年春季): Celeste Acosta, Elias Gee, Benjamin Park, Jeffrey Smithwick
-
第四批(2022 年秋季 - 2023 年春季): Matteo Paz
最后,我谨向 Sanjana Kulkarni 致以诚挚的谢意,感谢她为本书提供的富有洞察力的建议和一丝不苟的校对工作。
**更新:**更多相关信息请参阅文章《Math Academy 的 Eurisko 项目:五年回望》。